// pages/helpCenter/helpCenter.js
import CommonService from '../../../utils/service/commonService.js';
import Toast from '../../../miniprogram_npm/@vant/weapp/toast/toast';

Page({

  /**
   * 页面的初始数据
   */
  data: {
    //折叠面板当前值
    activeName: null,
    //折叠面板是否是手风琴模式
    isAccordion: true,
    //列表
    list:[],
    //无数据
    showNothing:false,
    //搜索关键词
    searchValue:'',
    //字典map
    typeMap:null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //获取字典
    this.getVideoType();
  },

  //获取字典
  getVideoType(){
    Toast.loading({
      duration: 0,
      message: '加载中...'
    });

    let param={
      isAuth:false,
      className:'dictionary',
      data:{
        searchAll: true,
        key:'videoType'
      }
    }

    CommonService.goFindList(param).then(res=>{
      if(res.data.data && res.data.data.result.length){
        let result=res.data.data.result;
        let maps=new Map();
        result.forEach(item => {
          maps.set(item.id,item.name);
        });

        console.log('视频分类字典');
        console.log(maps);

        this.setData({
          typeMap: maps
        })

        //获取视频列表
        this.getVideoList();
      }else{
        Toast.clear();
        this.setData({
          showNothing: true
        })
      }
    }).catch((error) => {
      Toast.clear();
      this.setData({
        showNothing: true
      })
    })
  },

  //获取视频列表
  getVideoList(){
    let _this=this;
    let maps=this.data.typeMap;

    let param={
      isAuth:false,
      className:'video',
      data:{
        searchAll:true
      }
    }

    //搜索
    if(this.data.searchValue){
      //搜索时面板展开，方便查看
      let arrs=[...maps.keys()];
      this.setData({
        isAccordion: false,
        activeName: arrs
      })

      let complex=[{
        "or": {
          title:'%'+this.data.searchValue+'%',
          category:'%'+this.data.searchValue+'%'
        }
      }];
      param.data.complex=complex;
    }else{
      //没有搜索时面板折叠，页面更简洁
      this.setData({
        isAccordion: true,
        activeName: null
      })
    }

    CommonService.goFindList(param).then(res=>{
      Toast.clear();
      if(res.data.data && res.data.data.result.length){
        let result=res.data.data.result;

        //按type排序
        result=result.sort(this.sortArray);

        //按类别分组
        let listArr = [];
        result.forEach(function (el, index) {
          for (let i = 0; i < listArr.length; i++) {
            if (listArr[i].type == el.type) {
              listArr[i].con.push(el);
              return;
            }
          }
          listArr.push({
            type: el.type,
            con: [el]
          });
        });

        //匹配视频分类名称
        listArr.forEach(item => {
          let con=item.con;
          let categoryArr=[];
          con.forEach(function (el) {
            for (let i = 0; i < categoryArr.length; i++) {
              if (categoryArr[i].category == el.category) {
                categoryArr[i].categorys.push(el);
                return;
              }
            }
            
            let obj={
              category: el.category,
              categorys: [el],
              show: false
            }

            //搜索时分类展开，方便查看
            if(_this.data.searchValue){
              obj.show=true;
            }

            categoryArr.push(obj);
          });

          item.categoryArr=categoryArr;

          item.typeStr=maps.get(item.type);  
        });

        console.log('视频列表');
        console.log(listArr);

        this.setData({
          list: listArr
        })
      }else{
        this.setData({
          showNothing: true
        })
      }
    }).catch((error) => {
      Toast.clear();
      this.setData({
        showNothing: true
      })
    })
  },

  //折叠面板切换
  onChange(event) {
    this.setData({
      activeName: event.detail
    })
  },

  //跳转视频页面
  goToVideo(e){
    let id=e.currentTarget.dataset.id;
    wx.navigateTo({
      url: "/packageA/pages/helpVideo/helpVideo?id="+id
    })
  },

  //获取搜索词
  onChangeSearch(e) {
    this.setData({
      searchValue: e.detail,
    })
  },

  //点击搜索
  onSearch(){
    this.setData({
      list: [],
      showNothing: false
    })
    this.getVideoList();
  },

  //点击设备型号切换
  onSwitch(e){
    let category=e.currentTarget.dataset.category;
    let list=this.data.list;
    list.forEach(item => {
      let arr=item.categoryArr;
      for(let i=0;i<arr.length;i++){
        if(arr[i].category==category){
          arr[i].show=!arr[i].show;
        }else{
          arr[i].show=false;
        }
      }
    });
    this.setData({
      list: list
    })
  },

  //排序函数
  sortArray(a,b){
    return b.type - a.type;
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})
